/*---------------------------------------------------------------------------*\
  =========                 |
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     |
    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
     \\/     M anipulation  |
-------------------------------------------------------------------------------
License
    This file is part of OpenFOAM.

    OpenFOAM is free software: you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    for more details.

    You should have received a copy of the GNU General Public License
    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.

\*---------------------------------------------------------------------------*/

#include "fvCFD.H"

int main(int argc, char *argv[])
{
	// Checks the basic folder structure, verifies there is a control dict present, etc.;
	// also deals with parsing command line arguments and options.
	// It works by taking an external piece of code, written in $FOAM_SRC/OpenFOAM/include.
	// The contents of the include file actually look like this:
    /*Foam::argList args(argc, argv); - deciphers the arguments passed to the program
    if (!args.checkRootCase()) - verifies the folder structure
    {
        Foam::FatalError.exit();
    }*/
    #include "setRootCase.H"

	// OpenFOAM screen output is very similar to rudimentary C++ with its std::cout, std::nl and std::endl
	// being replaced with Foam::Info, Foam::nl, and Foam::endl.
	Info << "Hello there, I'm an OpenFOAM program!" << nl
		 << "You don't need a mesh or anything to run it, just a bare OpenFOAM case will do." << nl
		 << tab << "This is me again, just creating a tabulated new line, move along." << nl << endl;

    Info<< "End\n" << endl;

    return 0;
}


// ************************************************************************* //
